#include <vector>
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

//class Solution {
//public:
//    int findSubstringInWraproundString(string s)
//    {
//        int n = s.size();
//        vector<int> dp(n, 1);
//        int maxCntMap[26] = { 0 };
//        maxCntMap[s[0] - 'a'] = 1;
//        for(int i = 1; i < n; ++i)
//        {
//            if((s[i - 1] + 1 == s[i]) || 
//                (s[i - 1] == 'z' && s[i] == 'a'))
//            { dp[i] += dp[i - 1]; }
//            maxCntMap[s[i] - 'a'] = max(maxCntMap[s[i] - 'a'], dp[i]);
//        }
//        int res = 0;
//        for(int i = 0; i < 26; ++i) {
//            if(maxCntMap[i] != 0) { 
//              cout << maxCntMap[i] << endl;
//            }
//            res += maxCntMap[i];
//        }
//        return res;
//    }
//};
//
//int main()
//{
//  string s = "zab";
//  Solution().findSubstringInWraproundString(s);
//  return 0;
//}

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
    int n = 0; cin >> n;
    vector<string> pathVec(n);
    for(int i = 0; i < n; ++i)
    {
        string path; cin >> path;
        pathVec[i] = path;
    }
    sort(pathVec.begin(), pathVec.end());
    for(int i = 1; i < n; ++i)
    {
        string &curPath = pathVec[i], &prePath = pathVec[i - 1];
        size_t pos = curPath.find(prePath);
        // cout << "pos: " << pos << ", curPath_end: " << 
        //     curPath[prePath.size()] << endl;
        if(pos != string::npos && curPath[prePath.size()] == '/') {
            prePath = "";
        }
    }
    vector<string> res;
    for(int i = 0; i < n; ++i)
    {
        string resPath = "mkdir -p ";
        if(!pathVec[i].empty()) {
            resPath += pathVec[i];
            res.push_back(resPath);
        }
    }
    for(auto& cmd : res) { cout << cmd << endl; }
    return 0;
}

